1. Technical Field of the Invention
This invention relates to RAM resident databases. More particularly, it relates to the use of self-relative pointers to reconstruct memory-to-memory pointers between database structures in RAM resident databases when reloaded to RAM from a disk image, such as on a server restart.
2. Background Art
Database servers have to deal with many updates to the database, and yet need to be able to keep an up-to-date image of the database on disk storage to allow for failure recovery and normal server shutdown and restart. Such servers need to be able to keep the image on disk storage up-to-date quickly to remain responsive to queries. However, complex and generally slow disk-based architectures have evolved in the art which use commit-fallback schemes to assure integrity of the database image on disk. Consequently, there is a need in the art for a system and method which provides a RAM-resident database allowing quick responses to queries and updates, but which still allows a very rapid commit-to-disk of the entire database image in a single flash operation.
It is known in the art to provide a system of pointers for control of saving RAM to disk and performing the reverse operation of disk to RAM.
One such system is described in U.S. Pat No. 5,600,840, which uses b-tree style database pointer blocks to define a hierarchy of data blocks. However, in this approach, data blocks must be reloaded into memory at the same memory locations they occupied prior to being saved to disk.
Another system is described in U.S. Pat. No. 5,551,020, which also uses pointers to organize the database files on disk, but focuses on ways of organizing and compressing the database files to minimize their physical size on the storage media.
It is an object of the invention to provide an improved RAM resident database structure.
It is a further object of the invention to provide a RAM resident database structure which enables rapid commit-to-disk of the entire database in a single flash operation.
It is a further object of the invention to provide a RAM resident database structure which enables fast reconstruction of memory-to-memory pointers between structures within the RAM resident database upon an image of the database being reloaded to RAM from storage.
It is a further object of the invention to provide an improved method for maintaining the integrity of an on-disk image of a RAM resident database.
It is a further object of the invention to provide an improved method for updating memory-to-memory pointers in a RAM resident database upon being reconstructed from the on-disk image.